package 字符串;

/**
 * @author: 大怪
 * @email: 962527441@qq.com
 */

/**
 * 题目：
 * 给定一个非空字符串 s，请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。
 *
 * 示例 1:
 *
 * 输入: s = "aba"
 * 输出: true
 */
public class 最多删除一个字符得到回文 {
    class Solution {
        public boolean validPalindrome(String s) {
            int left = 0;
            int right = s.length()-1;
            while(left<right) {
                if (s.charAt(left) != s.charAt(right)) {
                    return test(s,left,right-1) || test(s,left+1,right);
                }
                left++;
                right--;
            }
            return true;
        }
        public boolean test(String s,int l,int r) {
            while(l<r) {
                if (s.charAt(l) != s.charAt(r)) {
                    return false;
                }
                l++;
                r--;
            }
            return true;
        }
    }
}
